iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 16
0

使用GCP訓練、監測和部署ML模型

主旨:了解如何在GCP訓練、監測和部署ML模型

為何要使用 Cloud AI Platform?

當處理一般的簡單問題,或者資料量很小的時候,在自己的電腦上面運行當然就足夠了,但是當我們考量到商業化的應用場景時,隨著資料量的增大、模型的複雜化批次訓練和分散式訓練就變得很重要了。

而隨著模型的複雜化,模型架構、超參數都是需要去尋找一個比較適當值的部分,然而這種搜尋一次一次手動太慢了,我們也需要一個可以自動幫我們搜索的方式。

最後就是訓練和預測資料的預處理,也需要可以有一致性的規則,否則預測的結果就沒法如同訓練時有一致的表現。

綜合以上的原因,就是為什麼要在GCP上訓練、監測和部署ML模型。

在GCP上訓練ML模型

在開始訓練模型前,第一步要先做好的就是清理資料、特徵工程,接著才是把要訓練的資料送進雲端做訓練,而在GCP上訓練ML模型簡單可分成三個步驟:

  1. 使用TensorFlow建造計算圖和訓練應用
  2. 包裝(package)你的訓練應用程式
  3. 設定並開始Cloud AI Engine的工作

包裝訓練應用程式的時候有兩個重要的檔案:task.py 和 model.py

task.py是用來將job的細節,包含如何傳入命令參數、運行多長時間、在何處輸出、如何與超參數調整進行交互等等。

model.py則是主要ML的任務,包含提取資料、定義特徵、配置服務簽名,當然還有實際的訓練和評估步驟。

下圖是一般在雲端包裝訓練應用的程式架構:

包裝好的後,可以先在本機測試一下,指令如下:

確定沒問題後,就可以上傳到GCP,並在GCP上的機器測試是否也沒問題:

傳上雲端後,接著就是準備要規模化的生產、服務了,GCP上的規模等級比較基本的有4種:

  1. Basic
  2. Standard
  3. Basic GPU
  4. Basic TPU

另外一個小地方就是,當你選擇GCP儲存的bucket時,盡量選在單一區域,這樣對ML的工作表現會比較好,選擇多區域的話是比較適合用在web服務應用

[GCP Lab實作-10]:使用 Cloud AI Platform 規模化 TensorFlow

這個實作中,我們將學會:

  • 如何包裝一個 TensorFlow 模型並在 Cloud AI Platform 上運行

[Part 1]:使用 Cloud AI Platform 規模化 TensorFlow

  1. 登入GCP,開啟Notebooks後,複製課程 Github repo (如Day9的Part 1 & 2步驟)。

  2. 在左邊的資料夾結構,點進 training-data-analyst > courses > machine_learning > deepdive > 03_tensorflow,然後打開檔案 e_ai_platform.ipynb

  3. 一開始先將所有的環境變數設定好,包含project、bucket、region...等等的名稱。

  1. 取好後接著設定GCP的project和region名稱。

  1. 因為在GCP上訓練模型的話需要一個地方提供模型的存放與讀取,所以我們開設一個bucket來做存取的地方。

  1. 接著授權 Cloud AI Platform 有權限可以存取這個bucket。

  1. 再來看一下我們已經準備好要包裝的程式結構如下:

  1. 因為要先在本機端試跑看看程式有沒有問題,所以先將以前訓練的結果刪除(要注意這邊講的"本機"其實是在GCP上面運行的VM,不是一般指的自己的電腦歐!)。

  1. 開始執行本機端的模型訓練。

  1. 訓練完後我們簡單寫一個 test.json 檔案做預測,可以看到預測的計程車費約為11.41。

  1. 再來我們要用 gcloud 指令在本機端訓練,所以一樣先把剛剛的訓練結果刪掉。

  1. 這次用gcloud 指令在本機端訓練。

  1. 訓練的結果路徑含有下面這些檔案:

  1. 接著要模擬使用 Cloud AI Platform 來進行訓練了,首先先將訓練資料 csv 傳進bucket儲存。

  1. 再來就是傳送遠端 job開始訓練模型:

  1. 使用傳送 job 給 Cloud AI Platform 來進行訓練完後,模型存在bucket下(和剛剛本機端的訓練結果路徑是不同的):

  1. 接著準備部署遠端訓練好的模型,一開始先刪除前一次訓練的版本資訊(如果是全新訓練的模型就不需要這步)。

  1. 刪除版本資訊後就是刪除前一版的模型(如果是全新訓練的模型就不需要這步)。

  1. 部署新的模型:

  1. 新增新模型的版本資訊,版本號會放在 export/exporter 下:

  1. 試試看預測的值,車費約是11.27。

  1. 若是要使用REST API的形式做預測也可以,程式碼如下,這樣傳回來的預測結果就會是JSON的形式:


今天介紹了使用GCP訓練、監測和部署ML模型,也是這個系列子課程的結束,明天我們將開始第四個子課程Feature Engineering


上一篇
鐵人賽Day15 - Intro to TensorFlow (5/6)
下一篇
鐵人賽Day17 - Feature Engineering (1/6)
系列文
Machine Learning with TensorFlow on Google Cloud Platform30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言